Aspects of the disclosure relate to methods of halftoning continuous tone images. Other aspects relate to error diffusion methods for color halftoning.
A given image may comprise a pattern (e.g., an array) of pixels. Each pixel corresponds to a defined location in the image (e.g., a grid cell), and comprises tone information. Tone information for a given point (e.g., corresponding to a pixel) or region of an image generally comprises a color component (related to one or more frequencies of visible light) and an intensity component (related to a radiant intensity of the pixel).
In a color image, by way of example, a given pixel may have tone information defined in terms of three-color values—R for red, G for green, and B for blue. In simplified terms, the magnitude of each of these values represents the intensity of the individual color at the pixel's location. In a grayscale image, a pixel generally has only one color value—gray, and its magnitude is representative of the shade of gray (generally related to the intensity of that color) in the pixel.
Halftoning involves taking a source image (which may be referred to as a “continuous-tone image”), which contains a certain amount of tone information, and converting it to a target image with less tone information.
Grayscale halftoning may involve in some implementations, e.g., converting a continuous-tone grayscale image (e.g., with each pixel having an 8 bit gray value—and therefore defined in terms of one of among 256 different shades of gray) to a halftoned grayscale image (e.g., with each pixel having only a 1 bit gray value—and therefore defined in terms of one of two different shades of gray (typically black or white)). Color halftoning may involve, e.g., converting a continuous-tone color image (e.g., a CMYK image with each pixel having C (cyan), M (magenta), Y (yellow), and B (black) values each comprising 8 bits) to a halftoned color image (e.g., a CMYK image with each pixel having CMYK values each comprising only one bit).
In digital color halftoning, the rendering device may be binary in nature, which means that for every available color of ink, it produces either a dot or pixel or no dot or pixel at any given location. Several digital halftoning methods exist, including error diffusion. An error diffusion method may include determining a quantization error for a given pixel based on intensity values of the pixel in the original image and based on weighted error values of certain neighbor pixels. The error values are then fed back, possibly filtered by an error filter, and added to the input continuous-tone image. This causes the quantization error frequencies and colors to be diffused in the output halftoned image.
Two types of error diffusion for digital color halftoning include scalar error diffusion and vector error diffusion. Both process images with multiple color layers (often referred to as separations). In scalar error diffusion, each color separation is halftoned independently, while in vector error diffusion, the color components are processed jointly.